package com.hotel.pic.service;

import java.io.File;
import java.util.UUID;

import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.hotel.pic.utils.UploadUtil;
import com.hotel.pic.vo.PicUploadResult;

@Service
public class PicService {

	public PicUploadResult imgUpload(MultipartFile pic) {

		//准备一个返回结果
		PicUploadResult result = new PicUploadResult();
		try {
			// 拿到源文件名称
			String oFileName = pic.getOriginalFilename();
			// 截取后缀 1.jpg
			String extName = oFileName.substring(oFileName.lastIndexOf("."));
			// 正则表达式判断 判断不属于.jpg .png .gif
			if (!extName.matches(".(jpg|png|gif)$")) {
				// 说明后缀非法
				result.setError(1);
				return result;
			}
			// 使用common中的工具类UploadUtil
			// fileName原文件名称,upload前缀 upload
			String dir = UploadUtil.getUploadPath(oFileName, "upload");
			// 使用file创建多级目录 d://img/upload/3/d/3//3/d3
			String path = "d://hotelImg/" + dir + "/";
			File _dir = new File(path);
			// 判断路径文件夹结构是否已经存在,不存在创建
			if (!_dir.exists()) {// 需要创建多级
				_dir.mkdirs();
			}
			// 重命名文件
			// dd135a52-3361-4a4f-ad68-79e5826152ab.jpg
			String newFileName = UUID.randomUUID().toString() + extName;
			// 将图片流输出到 path+newFileName
			pic.transferTo(new File(path + newFileName));
			// 生成一个可访问图片的url地址
			// http://image.jt.com/easymall/c/4/b/7/b/5/8/f/5adda796-66af-4c6e-a9e5-49a52a3c44a5_371cee6d-d81b-42b7-a11f-3ad36dc0e537.jpg
			String url = "http://image.hotel.com/" + dir + "/" + newFileName;
			result.setUrl(url);
			return result;
		} catch (Exception e) {// 发现异常,上传图片失败
			e.printStackTrace();
			result.setError(1);
			return result;
		}
	}

	

}
